package utils;

import org.opencv.core.Mat;
import org.opencv.core.Rect;

public class ImageDeted {

	private Mat image;
	private Mat[] occhiMat;
	private Mat voltiMat;
	private Rect[] voltiRect;
	private Rect[] occhiRect;

	private int nvolti = -1;
	private int nocchi = -1;

	private boolean off = false;
	
	private int semaforo = 0;

	/**
	 * Tempo dell'ultima chiusura
	 */
	public int closed = 0;
	/**
	 * Numero di chiusure
	 */
	public int blinks = 0;

	public ImageDeted() {
		super();
		occhiMat = new Mat[100];

	}
	
	/**
	 * Restituisce l'immagine in formato Mat
	 * 
	 * @return L'immagine come oggetto Mat
	 */

	public Mat getImage() {
		return image;
	}

	public void setImage(Mat image) {
		this.image = image;
	}
	
	/**
	 * Restituisce array di Mat che contengono gli occhi
	 * 
	 * @return Array di Mat contenenti gli occhi
	 */

	public Mat[] getEyes() {
		return occhiMat;
	}

	public void setEyes(Mat eyes, int i) {
		this.occhiMat[i] = eyes;
	}

	public Rect[] getVolti() {
		return voltiRect;
	}

	public void setVolti(Rect[] volti) {
		this.voltiRect = volti;
		if (volti != null) {
			this.setNvolti(volti.length);
		} else {
			this.setNvolti(0);
		}

	}

	public Rect[] getOcchi() {
		return occhiRect;
	}

	public void setOcchi(Rect[] occhi) {
		this.occhiRect = occhi;
		this.setNocchi(occhi.length);
	}

	public int getNocchi() {
		return nocchi;
	}

	public int getNvolti() {
		return nvolti;
	}

	public void setNocchi(int nocchi) {
		this.nocchi = nocchi;
	}

	public void setNvolti(int nvolti) {
		this.nvolti = nvolti;
	}

	public void switchOff() {
		this.off = true;
	}

	public boolean status() {
		return off;
	}

	public Mat getFace() {
		return voltiMat;
	}

	public void setFace(Mat face) {
		this.voltiMat = face;
	}

	public int getSemaforo() {
		return semaforo;
	}

	public void setSemaforo(int semaforo) {
		this.semaforo = this.semaforo + semaforo;
	}


}
